package com.soft.line.mapper;

import com.soft.line.entity.AppletCertificate;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 小程序 证书
 *
 * @author wpb
 * @version 1.0
 * @date 2020/6/3 15:46
 */
public interface AppletCertificateMapper {

    /**
     * 获取每个部门的证书总数
     *
     * @return
     */
    List<Map<String, Object>> getCertificateNum();

    /**
     * 根据证书类型获取证书年列表数据
     *
     * @param certType 参数
     * @return
     */
    List<Map<String, Object>> getCertificateYearList(@Param(value = "certType") String certType);

    /**
     * 根据证书类型cert_type和起始日期年份以及当前页、每页显示条数分页查询证书年列表
     *
     * @param paramMap 参数
     * @return
     */
    List<Map<String, Object>> getCertificateList(Map<String, Object> paramMap);

    /**
     * 根据证书类型cert_type和起始日期年份以及当前页、每页显示条数分页查询证书年列表
     * 符合条件的  总数
     *
     * @param paramMap 参数
     * @return
     */
    int countCertificateList(Map<String, Object> paramMap);

    /**
     * 根据id查询详情
     *
     * @param paramMap 参数
     * @return
     */
    Map<String, Object> getCertificate(Map<String, Object> paramMap);

    /**
     * 修改证书
     *
     * @param appletCertificate 参数
     * @return
     */
    int updateCertificate(AppletCertificate appletCertificate);

    /**
     * 根据证书编号和！id，校验证书编号是否重复
     *
     * @param certId 证书编号
     * @param id     id
     * @return
     */
    int checkCertificateByCertIdAndId(String certId, int id);

    /**
     * 删除证书
     *
     * @param paramMap 参数
     * @return
     */
    int deleteCertificate(Map<String, Object> paramMap);

    /**
     * 根据证书名称分页模糊查询证书列表
     *
     * @param paramMap 参数
     * @return
     */
    List<Map<String, Object>> getCertificateSearchList(Map<String, Object> paramMap);

    /**
     * 根据证书名称模糊查询证书列表总数
     *
     * @param paramMap 参数
     * @return
     */
    int countGetCertificateSearchList(Map<String, Object> paramMap);

    /**
     * 新增证书
     *
     * @param appletCertificate 参数
     * @return
     */
    int addCertificate(AppletCertificate appletCertificate);

    /**
     * 校验 证书编号是否存在
     *
     * @param certId 证书编号
     * @return
     */
    int checkCertificateByCertId(@Param(value = "certId") String certId);

    /**
     * 根据证书详情信息分页查询证书列表
     *
     * @param paramMap 参数
     * @return
     */
    List<Map<String, Object>> getContractQueryList(Map<String, Object> paramMap);

    /**
     * 根据证书详情信息查询证书列表  求和
     *
     * @param paramMap 参数
     * @return
     */
    int countGetContractQueryList(Map<String, Object> paramMap);
}
